package com.wty.example.publish;


//对象发布指的是外部可以调用该对象
//对象逸出指的是对象未构建完成便被发布了


//安全发布对象的几种情况
//1.静态初始化函数中初始化一个对象的引用
//2.将对象的引用放在一个被锁保护的域中
//3.将对象的引用保存在voliate或者atomicReference中
//4.将对象的引用保存到某个正确构造对象的final类型域中


import com.wty.annotations.ThreadSafe;
//单例模式 饿汉式 线程安全 但会占用大量资源
@ThreadSafe
public class publishDemo2 {
    private publishDemo2() {
        //如果这里存在很多计算，会导致类加载的时候很慢
    }

    private static publishDemo2 instance = new publishDemo2();

    public static publishDemo2 getInstance() {
        return instance;
    }

}
